home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
AEDataModel.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
8KB
|
240 lines
/*
File: AEDataModel.idl
Contains: AppleEvent Data Model Interfaces.
Version: Technology: Copland
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __AEDATAMODEL_IDL__
#define __AEDATAMODEL_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __MEMORY_IDL__
#include <Memory.idl>
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#if !FOR_PTR_BASED_AE
#ifndef __MIXEDMODE_IDL__
#include <MixedMode.idl>
#endif
#endif
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#ifndef __MEMALLOCATORS_IDL__
#include <MemAllocators.idl>
#endif
#endif
#ifdef __SOMIDL__
/* Keywords for Apple event attributes */
/* Constants used for specifying the factoring of AEDescLists. */
/* Constants used creating an AppleEvent */
/* Apple event manager data types */
typedef ResType DescType;
typedef FourCharCode AEKeyword;
#if FOR_PTR_BASED_AE
typedef OpaquePtr AEDescData;
typedef SOMLargeStruct AEDesc; /* Derived from a struct of 8 bytes in size */
/*typedef AEDesc * AEDescPtr;*/
#else
typedef SOMLargeStruct AEDesc; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr AEDescPtr; /* Substituted OpaquePtr for ``AEDesc*'' */
#endif
typedef SOMLargeStruct AEKeyDesc; /* Derived from a struct of 12 bytes in size */
/* a list of AEDesc's is a special kind of AEDesc */
typedef AEDesc AEDescList;
/* AERecord is a list of keyworded AEDesc's */
typedef AEDescList AERecord;
/* an AEDesc which contains address data */
typedef AEDesc AEAddressDesc;
/* an AERecord that contains an AppleEvent, and related data types */
typedef AERecord AppleEvent;
typedef OpaquePtr AppleEventPtr; /* Substituted OpaquePtr for ``AppleEvent*'' */
typedef SInt16 AEReturnID;
typedef SInt32 AETransactionID;
typedef FourCharCode AEEventClass;
typedef FourCharCode AEEventID;
typedef SInt8 AEArrayType;
#if FOR_PTR_BASED_AE
typedef SOMLargeStruct AEArrayData; /* Derived from a struct of 23 bytes in size */
#else
typedef SOMLargeStruct AEArrayData; /* Derived from a struct of 27 bytes in size */
#endif
typedef OpaquePtr AEArrayDataPointer; /* Substituted OpaquePtr for ``AEArrayData*'' */
/*
*************************************************************************
These calls are used to set up and modify the coercion dispatch table.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
#if !FOR_PTR_BASED_AE
typedef OpaquePtr AECoerceDescProcPtr;
typedef OpaquePtr AECoerceDescUPP;
typedef OpaquePtr AECoercePtrProcPtr;
typedef OpaquePtr AECoercePtrUPP;
typedef UniversalProcPtr AECoercionHandlerUPP;
#endif
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#if FOR_PTR_BASED_AE
typedef OpaquePtr AECoercionProc;
#endif
#endif
/*
*************************************************************************
The following calls provide for a coercion interface.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
/*
*************************************************************************
The following calls apply to any AEDesc. Every 'result' descriptor is
created for you, so you will be responsible for memory management
(including disposing) of the descriptors so created.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#if FOR_PTR_BASED_AE
#endif
#endif
/*
*************************************************************************
The following calls apply to AEDescList. Since AEDescList is a subtype of
AEDesc, the calls in the previous section can also be used for AEDescList.
All list and array indices are 1-based. If the data was greater than
maximumSize in the routines below, then actualSize will be greater than
maximumSize, but only maximumSize bytes will actually be retrieved.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
/*
*************************************************************************
The following calls apply to AERecord. Since AERecord is a subtype of
AEDescList, the calls in the previous sections can also be used for
AERecord an AERecord can be created by using AECreateList with isRecord
set to true.
*************************************************************************
*/
#if FOR_SYSTEM8_PREEMPTIVE
#endif
#if FOR_SYSTEM7_ONLY
/*
Note: The following #defines map ``key'' calls on AERecords into ``param'' calls on
AppleEvents. Although no errors are currently returned if AERecords are
passed to ``param'' calls and AppleEvents to ``key'' calls, the behavior of
this type of API-mixing is not explicitly documented in Inside Macintosh.
It just happens that the ``key'' calls have the same functionality as their
``param'' counterparts. Since none of the ``key'' calls are currently available
in the PowerPC IntefaceLib, the #defines exploit the fact that ``key'' and
``param'' routines can be used interchangeably, and makes sure that every
invokation of a ``key'' API becomes an invokation of a ``param'' API.
*/
#endif
/*
*************************************************************************
The following calls create and manipulate the AppleEvent data type.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#if FOR_PTR_BASED_AE
#endif
#endif
/*
*************************************************************************
The following calls are used to pack and unpack parameters from records
of type AppleEvent. Since AppleEvent is a subtype of AERecord, the calls
in the previous sections can also be used for variables of type
AppleEvent. The next six calls are in fact identical to the six calls
for AERecord.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
/*
*************************************************************************
The following calls also apply to type AppleEvent. Message attributes are
far more restricted, and can only be accessed through the following 5
calls. The various list and record routines cannot be used to access the
attributes of an event.
*************************************************************************
*/
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#if FOR_PTR_BASED_AE
/*
*************************************************************************
These calls are used to convert AEDescs into a "flattened", canonical
form and back again.
*************************************************************************
*/
/*
*************************************************************************
The following calls apply to AEStreams. Once a AEStream has been
fully written, it may be converted to an AEDesc, AEDescList or AERecord
to be used by the various other routines listed above.
*************************************************************************
*/
typedef OpaquePtr AEStream;
/*
*************************************************************************
The following calls apply to AESubDescs. AESubDescs provide an efficient
way to traverse recursive AERecords and AEDescLists.
*************************************************************************
*/
typedef SOMLargeStruct OpaqueAESubDesc; /* Derived from a struct of 32 bytes in size */
typedef OpaqueAESubDesc AESubDesc;
#endif
#endif
#endif /* __SOMIDL__ */
#endif /* __AEDATAMODEL_IDL__ */